This invention relates generally to object-oriented computing environments, and more particularly to dynamic object behavior for such environments.
Object-oriented programming environments are currently the standard environment in which computer programs are developed. For example, within the Microsoft Windows operating system, programs may be developed using the Component Object Model (COM) architecture. Object-oriented programming environments provide a modular manner by which developers can develop complex and sophisticated computer programs.
Generally, an object may include data and methods by which that data is accessed and changed. Thus, new methods may be added to the object for accessing and changing the data in other ways not previously possible, without affecting existing methods, and the external objects that rely on these existing methods. Upon receiving a message, or in response to an event, an object typically executes a particular method, resulting in the data within that object being retrieved or changed.
The invention provides for dynamic object behavior for object-oriented environments. In one embodiment, a system includes an object, a data store, and an application. The object has a plurality of dynamic behaviors. The data store stores data regarding the plurality of dynamic behaviors. The application instantiates the object from data stored in the data store regarding the plurality of dynamic behaviors. In addition, of the behaviors available to the object, the object is able to instantiate only a sub-set of all the behaviors, at run-time, depending on, for example, the current environment in which the object is instantiated.
The dynamic object behavior of the invention provides for advantages not found in the prior art. For example, typically within the prior art, an object""s behavior is permanently defined, making it difficult to change that object""s behavior. However, in embodiments of the invention, the object""s behavior may be changed, by changing the data regarding the plurality of behaviors in the data store (such as, adding a behavior or removing a behavior), or by having the object instantiate different of all of the possible behaviors at run-time, as a result of a dynamic determination made at run-time by the object. The invention includes systems, methods, computers, and computer-readable media of varying scope. Besides the embodiments, advantages and aspects of the invention described here, the invention also includes other embodiments, advantages and aspects, as will become apparent by reading and studying the drawings and the following description.